// 任务实体 VO
export interface TaskVO {
  taskId: string // 任务编号 (Java String)
  executionId: string // 任务执行编号
  taskName: string // 任务名称
  taskDefKey: string // 任务 Key
  assigneeId: string // 任务执行人 Id
  assigneeName: string // 任务执行人名称
  startUserId: string // 流程发起人 Id
  startUserName: string // 流程发起人名称
  category: string // 流程类型
  procVars: any // 流程变量信息 (Java Object)
  taskLocalVars: any // 局部变量信息
  deployId: string // 流程部署编号
  procDefId: string // 流程定义 ID
  procDefKey: string // 流程 Key
  procDefName: string // 流程定义名称
  procDefVersion: number // 流程定义版本号 (Java int)
  procInsId: string // 流程实例 ID
  hisProcInsId: string // 历史流程实例 ID
  duration: string // 任务耗时 (Java String)
  candidate: string // 候选执行人
  variableInstances: Record<string, any> // 关联的流程变量信息 (Java Map<String,VariableInstance>)
  variables: Record<string, any> // 关联的流程变量 (Java Map<String,Object>)
  startTime: string // 任务发起时间 (Java LocalDateTime → string)
  createTime: string // 任务创建时间
  finishTime: string // 任务完成时间
  status: number // 审批人当前操作的标识 (Java Integer)
}

// 任务列表信息 VO
export interface TaskListInfoVO {
  taskList: TaskVO[] // 任务清单 (Java List<TaskVO>)
  taskCount: number // 任务总数 (Java Long → number)
}

export interface PageReq {
  current: number // 当前页码，后端默认 1
  size: number // 每页记录数，后端默认 10
}

// 审批任务请求参数
export interface ApprovalMyTaskReq {
  taskId: string // 任务编号，对应 Java 中的 String taskId
}

// 拾取任务请求参数
export interface PickupMyTaskReq {
  taskId: string // 任务编号，对应 Java 中的 String taskId
}

// 归还任务请求参数
export interface RevertMyTaskReq {
  taskId: string // 任务编号，对应 Java 中的 String taskId
}

// 查看流程进度 请求参数
export interface QueryTaskImageReq {
  processInstanceId: string
}

// 我发起的流程任务 VO
export interface MyStartTaskVO {
  processDefinitionId: string // 流程定义ID (Java String)
  processDefinitionName: string // 流程定义名称
  processInstanceId: string // 流程实例ID
  startUserName: string // 发起人名称
  startTime: string // 发起时间 (Java LocalDateTime → string)
  endTime: string // 结束时间 (Java LocalDateTime → string)
  status: number // 审批状态（0：审批中 1：通过 2：拒绝）(Java Integer → number)
  comment: string // 审批备注 (Java String)
}

// 我发起的流程任务清单 VO
export interface MyStartTaskListInfoVO {
  myStartTaskList: MyStartTaskVO[] // 我的发起流程任务清单 (Java List<MyStartTaskVO> → MyStartTaskVO[])
  myStartTaskCount: number // 我的发起流程任务总数 (Java Long → number)
}

// 查看流转记录请求参数
export interface QueryCirculationRecordsReq {
  processInstanceId: string
}

// 流转记录VO
export interface CirculationRecordsVO {
  taskId: string // 任务ID
  processInstanceId: string // 流程实例ID
  taskName: string // 任务节点名称
  assignee: string // 任务办理人
  assigneeName: string // 任务办理人名称
  startTime: string // 任务开始时间 (Java LocalDateTime → string)
  size: string // 任务节点展示 size
  type: string // 任务节点展示类型
  color: string // 任务节点展示颜色
}

// 我的已办任务 VO
export interface MyCompleteTaskVO {
  processDefinitionId: string // 流程定义ID (Java String)
  processDefinitionName: string // 流程定义名称
  processInstanceId: string // 流程实例ID
  startUserName: string // 发起人名称
  startTime: string // 发起时间 (Java LocalDateTime → string)
  endTime: string // 结束时间 (Java LocalDateTime → string)
}

// 我已办任务清单 VO
export interface MyCompleteTaskListInfoVO {
  myCompleteTaskList: MyCompleteTaskVO[] // 我的已办任务列表 (Java List<MyCompleteTaskVO> → MyCompleteTaskVO[])
  myCompleteTaskCount: number // 我的已办任务数量 (Java Long → number)
}
